home *** CD-ROM | disk | FTP | other *** search
/ Merciful 2 / Merciful - Disc 2.iso / software / d / digitadatastorev1.1.dms / digitadatastorev1.1.adf / Install Datastore < prev    next >
Text File  |  1995-08-30  |  43KB  |  1,743 lines

  1. ; $VER: Digita Datastore Installer Script 14/11/94
  2. ; English Language
  3. ;
  4. ; Works for Full version and Demonstration version
  5. ; This section contains the Text strings for translation and
  6. ; appending to the code
  7. ;
  8. ; Copyright (C) Digita International
  9.  
  10. ;------------------------------------------------------
  11. ; ### Variable declarations
  12. (set #ProgName "Datastore")
  13. (set #NumberInstallDisks 1)
  14. (set #DSInstallDisk "DSInstall")
  15. (set #NumNewDSDisks 2)
  16. (set #DSDiskName "Datastore")
  17. (set #DSFilesName "DS-Files")
  18. (set #RamTempFile "RAM:DSTemp")
  19. (set #RamUtils "RAM:DSUtils")
  20. (set #HDSpaceNeededBytes (* (* 1 1024) 1024)) ;1MB free
  21. (set #NumFonts 3)
  22. (set #Font1Name "Condensed60.font")
  23. (set #Font2Name "newtopaz.font")
  24. (set #Font3Name "DGSansSerif.font")
  25. (set #DriverDest "DEVS:Printers")
  26. (set #DSToolDest (cat #DSDiskName ":Datastore"))
  27. (set #HelpTool "HELP")
  28. (set #DocsTool "DEFFILES")
  29. (set #PicsTool "DEFPICTURES")
  30. (set #LanguageTool "LANGUAGE")
  31.  
  32. ;------------------------------------------------------
  33. ; ### String declaration
  34. ;// Drawer names
  35. (set #DSDrawerName "Datastore")
  36. (set #DSHelpName "Help")
  37. (set #DSDocsName "Databases")
  38. (set #DSPicsName "Pictures")
  39. (set #DSCatalogsName "Catalogs")
  40. (set #DSFontsName "Fonts")
  41. (set #LibsDefault "Libs")
  42. (set #DataTypesDrawerName "DataTypes")
  43. (set #ClassesDrawerName "Classes")
  44.  
  45. ;------------------------------------------------------
  46. ;// Archive Names
  47. (set #ASLArchiveName "asl.lha")
  48. (set #AmigaGuideArchiveName "Amigaguide.lha")
  49. (set #ProgArchiveName "Datastore.lha")
  50. (set #CatalogsArchiveName "Catalogs.lha")
  51. (set #HelpArchiveName "Help.lha")
  52. (set #DocsArchiveName "Databases.lha")
  53. (set #PicsArchiveName "Pictures.lha")
  54. (set #SystemFontsArchiveName "Fonts.lha")
  55. (set #StartupArchiveName "startup.lha")
  56. (set #MathLibsArchiveName "mathlibs.lha")
  57. (set #DataTypesArchiveName "datatypes.lha")
  58. (set #ClassesArchiveName "classes.lha")
  59. (set #DataTypesLibArchiveName "datatypeslib.lha")
  60. (set #DevicesArchiveName "Devices.lha")
  61.  
  62. ;------------------------------------------------------
  63. ;// File Names
  64. (set #LibsSource (cat #DSInstallDisk ":libs"))
  65.  
  66. ;------------------------------------------------------
  67. ;// Message strings
  68. (set #BadKick
  69.     (cat #ProgName " requires Workbench 2.04 or above to work correctly.")
  70. )
  71.  
  72. (set #CheckStartup
  73.     (cat "\n\n\nPlease wait...\n\nThe installer is just checking your system.")
  74. )
  75.  
  76. (set #DestChoicePrompt
  77.     (cat "\n\n\nWhere would you like to install " #ProgName "?")
  78. )
  79.  
  80. (set #FloppyChoiceMsg
  81.     (cat "On floppy disks")
  82. )
  83.  
  84. (set #HardDiskChoiceMsg
  85.     (cat "On a hard disk")
  86. )
  87.  
  88. (set #DestChoiceHelp
  89.     (cat "\nSelect the radio button \"On a hard disk\" to "
  90.         "install " #ProgName " onto your hard disk.\n\n"
  91.         "Select the radio button \"On floppy disks\" to "
  92.         "install " #ProgName " onto a set of backup disks.\n\n\n"
  93.     )
  94. )
  95.  
  96. (set #HardDiskDestChoiceMsg
  97.     (cat "Where do you want to install the\n" #ProgName " drawer?")
  98. )
  99.  
  100. (set #HardDiskDestChoiceHelp
  101.     (cat "Select the drawer where you want to install " #ProgName
  102.         ", then click Proceed (a new drawer titled \"" #DSDrawerName
  103.         "\" will be created and will contain the " #ProgName " program.)"
  104.     )
  105. )
  106.  
  107. (Set #HDBootedFromFloppy
  108.     (cat "It appears you are installing to Hard-disk, but booted from the " #DSInstallDisk
  109.          " Floppy-disk, this will not work.\n\nPlease reset your Amiga with no floppy-disks "
  110.          "inserted so it boots from the hard-disk, then try installing " #ProgName " again."
  111.     )
  112. )
  113.  
  114. (set #NoDiskSpaceMsg1
  115.     (cat "\nThere is insufficient available space on your hard disk to install "
  116.         #ProgName ". You will need a minimum of "
  117.     )
  118. )
  119.  
  120. (set #NoDiskSpaceMsg2
  121.     (cat "MB of free disk space.\n\nEither click \"Abort Install\" to exit this "
  122.         "installation and delete some files from your hard disk, or click \"Proceed\" and try a "
  123.         "different partition."
  124.     )
  125. )
  126.  
  127. (set #DrawerExistsMsg
  128.     (cat "\nA drawer titled \"" #DSDrawerName "\" already exists in "
  129.         "the destination you have chosen.\n\nDo you wish to replace it "
  130.         "or choose a new destination?\n\n"
  131.     )
  132. )
  133.  
  134. (set #DrawerExistsChoice1 "Replace it")
  135.  
  136. (set #DrawerExistsChoice2 "Choose new destination")
  137.  
  138. (set #DrawerExistsHelp
  139.     (cat "\nYou have chosen a destination drawer which already has \""
  140.         #DSDrawerName "\" installed there.\n\nClick \""
  141.         #DrawerExistsChoice1 "\" to replace the contents with this new version "
  142.         "of " #ProgName ".\nClick \"" #DrawerExistsChoice2 "\" to choose a "
  143.         "new destination drawer.\n\n"
  144.         "If you choose \"" #DrawerExistsChoice1 "\" then please make sure you "
  145.         "have back up copies of any documents you wish to keep."
  146.     )
  147. )
  148.  
  149. (set #InstallChoice1 "Yes - Replace it")
  150.  
  151. (set #InstallChoice2 "No")
  152.  
  153. (set #OldASLLibraryMsg
  154.     (cat "You either do not have an ASL.library, or it is the wrong version. "
  155.         #ProgName " requires you have at least version 38 of this "
  156.         "library. Do you want to copy version 38 of the ASL.library?"
  157.     )
  158. )
  159.  
  160. (set #OldASLLibraryHelp
  161.     (cat #ProgName " will not work properly unless you have at least version 38 "
  162.         "of the ASL.library (Workbench 2.1 or above).\n\n"
  163.         "Choose \"" #InstallChoice1 "\" to copy version 38 of the library "
  164.         "and then install " #ProgName ".\nChoose \"" #InstallChoice2 "\" to not install "
  165.         "ASL.library version 38."
  166.     )
  167. )
  168.  
  169. (set #OldDiskFontLibraryMsg
  170.     (cat "You either do not have an DiskFont.library, or it is the wrong version. "
  171.         #ProgName " requires you have at least version 37 of this "
  172.         "library. Do you want to copy version 37 of the DiskFont.library?"
  173.     )
  174. )
  175.  
  176. (set #OldDiskFontLibraryHelp
  177.     (cat #ProgName " will not work properly unless you have at least version 37 "
  178.         "of the DiskFont.library (Workbench 2.04 or above).\n\n"
  179.         "Choose \"" #InstallChoice1 "\" to copy version 37 of the library "
  180.         "and then install " #ProgName ".\nChoose \"" #InstallChoice2 "\" to not install "
  181.         "DiskFont.library version 37 and quit this installer."
  182.     )
  183. )
  184.  
  185. (set #OldAmigaGuideLibraryMsg
  186.     (cat "You either do not have an AmigaGuide.library, or it is the wrong version. "
  187.         #ProgName " requires you have at least version 34.11 of this "
  188.         "library. Do you want to copy version 34.11 of the AmigaGuide.library?"
  189.     )
  190. )
  191.  
  192. (set #OldAmigaGuideLibraryHelp
  193.     (cat #ProgName " will not work properly unless you have at least version 34.11 "
  194.         "of the AmigaGuide.library.\n\n"
  195.         "Choose \"" #InstallChoice1 "\" to copy version 34.11 of the library "
  196.         "and then install " #ProgName ".\nChoose \"" #InstallChoice2 "\" to not install "
  197.         "AmigaGuide.library version 34.11."
  198.     )
  199. )
  200.  
  201. (set #OldLocaleLibraryMsg
  202.     (cat "You either do not have an Locale.library, or it is the wrong version. "
  203.         #ProgName " requires you have at least version 38 of this "
  204.         "library. Do you want to copy version 38 of the Locale.library?"
  205.     )
  206. )
  207.  
  208. (set #OldLocaleLibraryHelp
  209.     (cat #ProgName " will not work properly unless you have at least version 38 "
  210.         "of the Locale.library (Workbench 2.1 or above).\n\n"
  211.         "Choose \"" #InstallChoice1 "\" to copy version 38 of the library "
  212.         "and then install " #ProgName ".\nChoose \"" #InstallChoice2 "\" to not install "
  213.         "Locale.library version 38."
  214.     )
  215. )
  216.  
  217. (set #OldParseLibraryMsg
  218.     (cat "You either do not have an IffParse.library, or it is the wrong version. "
  219.         #ProgName " requires you have at least version 34 of this "
  220.         "library. Do you want to copy version 34 of the IffParse.library?"
  221.     )
  222. )
  223.  
  224. (set #OldParseLibraryHelp
  225.     (cat #ProgName " will not work properly unless you have at least version 34 "
  226.         "of the IffParse.library (Workbench 1.3 or above).\n\n"
  227.         "Choose \"" #InstallChoice1 "\" to copy version 34 of the library "
  228.         "and then install " #ProgName ".\nChoose \"" #InstallChoice2 "\" to not install "
  229.         "IffParse.library version 34."
  230.     )
  231. )
  232.  
  233. (set #InsertDiskMsg
  234.     (cat "\nPlease insert the disk labelled\n\n")
  235. )
  236.  
  237. (set #diskhelp
  238.     (cat "\nIf you know that the correct disk is in the drive, but you still cannot proceed, "
  239.         "then the name of the disk is incorrect.\n"
  240.         "Ensure that the disk name is not preceded by 'copy_of_', or blank spaces before or after the disk name.\n\n\n" @askdisk-help
  241.     )
  242. )
  243.  
  244. (set #Unpackmsg1 "Unarchiving ")
  245. (set #Unpackmsg2 " to ")
  246. (set #Unpackmsg3 "\n\nPlease wait...")
  247.  
  248. (set #ArchiveAbortMsg1
  249.     (cat "There was a problem when trying to dearchive '")
  250. )
  251.  
  252. (set #ArchiveAbortMsg2
  253.     (cat "'. Please try installing to a different drawer or partition, "
  254.         "or contact Digita Technical Support."
  255.     )
  256. )
  257.  
  258. (set #BlankDiskWarning
  259.     (cat "\nPlease insert a 'blank' disk in the internal\n"
  260.         "disk drive and click \"Proceed\" when ready."
  261.         "\n\nWARNING: This procedure will destroy all information "
  262.         "that may already be on the disk."
  263.     )
  264. )
  265.  
  266. (set #FloppyWarningHelp
  267.     (cat     "\nThis procedure uses the 'format' command to "
  268.         "wipe and prepare the disk in the internal disk drive "
  269.         "for use with Datastore."
  270.         "\n\nWrite-protect your master disks before making "
  271.         "backup copies and place the masters in a safe place."
  272.         "\n\nYou should also write-protect your backup disks "
  273.         "before clicking the \"Proceed\" button."
  274.     )
  275. )
  276.  
  277. (set #NotBlankMsg1
  278.     (cat "\nYou have the \"")
  279. )
  280.  
  281. (set #NotBlankMsg2
  282.     (cat "\" disk in your internal disk drive.\n\nPlease "
  283.         "replace this disk with a blank one, before "
  284.         "clicking the \"Proceed\" button."
  285.     )
  286. )
  287.  
  288. (set #FormatWorkingMsg
  289.     (cat "Please wait... Formatting a disk.")
  290. )
  291.  
  292. (set #FormatError
  293.     (cat     "\nAn error occured when trying to format this disk.\n\n"
  294.         "Please ensure that the disk is in the disk drive "
  295.         "before you click the \"Proceed\" button or "
  296.         "put another disk in the drive and try again."
  297.     )
  298. )
  299.  
  300. (set #FormatErrorHelp
  301.     (cat "\nAn error has occured during the formatting of "
  302.         "your disk. This could be for many reasons, but more "
  303.         "commonly, either the disk was corrupt or the drive was "
  304.         "faulty.\nPlease try a different disk, check the drive "
  305.         "and then if the problem persists, contact the Technical "
  306.         "Support Department. Information on how to get Support is "
  307.         "explained in the manual."
  308.     )
  309. )
  310.  
  311. (set #FormatCompleteMsg1
  312.     (cat " created.\n\nPlease take out the disk "
  313.         "in the internal disk drive and label it \""
  314.     )
  315. )
  316.  
  317. (set #FormatCompleteMsg2
  318.     (cat "\", then click the \"Proceed\" button.")
  319. )
  320.  
  321. (set #FormatChoiceprompt
  322.     (cat "\n" #ProgName " needs to format and name two disks during installation. "
  323.         "For more information click 'Help'. Do you wish to:"
  324. ))
  325.  
  326. (set #FormatChoicemsg1 "Slow Format Some Blank Disks")
  327.  
  328. (set #FormatChoicemsg2 "Quick Format Some Blank Disks")
  329.  
  330. (set #FormatChoice-Help
  331.     (cat "This installation utility needs to prepare two disks before installing "
  332.         #ProgName ". Before each disk is created, it will be formatted and named. "
  333.         "\n\nChoose '" #FormatChoicemsg1 "' if you wish to perform a full format, or \nchoose "
  334.         "'" #FormatChoicemsg2 "' to perform a quick format on disks that must have been "
  335.         "previously formatted as Fast File System disks."
  336. ))
  337.  
  338. (set #FloppyFinishedMsg
  339.     (cat "\nAfter clicking the 'Proceed' button, place the \"" #DSDiskName
  340.         "\" disk in the internal disk drive and reset your Amiga.\n"
  341.     )
  342. )
  343.  
  344. (set #WorkingMsg (cat "Please wait...\n\nInstalling " #ProgName))
  345.  
  346. (set #CreateDiskPrompt "\nDo you want to create\n\n")
  347.  
  348. (set #ChoiceContinue "Yes")
  349.  
  350. (set #ChoiceSkip "Skip this part")
  351.  
  352. (set #CreateDSDiskHelp
  353.     (cat "\nThe '" #DSDiskName "' disk contains all the "
  354.         #ProgName " program files. \n\nIf you would like to create a "
  355.         #DSDiskName " disk then click '" #ChoiceContinue "'.\nIf you do "
  356.         "not want to create this disk then click '" #ChoiceSkip "'."
  357.     )
  358. )
  359.  
  360. (set #PrinterChoicePrompt
  361.     (cat "\n\nDo you wish to install a printer driver?"
  362.     )
  363. )
  364.  
  365. (set #PrinterChoicemsg1 "Yes")
  366. (set #PrinterChoicemsg2 "No")
  367.  
  368. (set #PrinterChoice-Help
  369.     (cat "To print from " #ProgName " you need to have the correct printer driver selected for your "
  370.          "printer.\nClick the '" #PrinterChoicemsg1 "' button if you wish to install a printer "
  371.          "driver, or the '" #PrinterChoicemsg2 "' button if you do not want to install a printer "
  372.          "driver."
  373.     )
  374. )
  375.  
  376.  
  377. (set #CreateFilesDiskHelp
  378.     (cat "\nThe '" #DSFilesName "' disk contains all the "
  379.         #ProgName " program files. \n\nIf you would like to create a "
  380.         #DSFilesName " disk then click '" #ChoiceContinue "'.\nIf you do "
  381.         "not want to create this disk then click '" #ChoiceSkip "'."
  382.     )
  383. )
  384.  
  385. (set #AskLocaleCmd "Assign >NIL: LOCALE: RAM:")
  386.  
  387. (set #AskLocaleMsg
  388.     (cat "For " #ProgName " to work properly, an assign has to be added "
  389.         "to your 'user-startup' script:\n\n'" #AskLocaleCmd "'\n\nClick "
  390.         "Proceed to continue."
  391.     )
  392. )
  393.  
  394. (set #AskLocaleHelp
  395.     (cat "For the Date and Time functions to work properly, an assign "
  396.         "for LOCALE needs to be added to your startup scripts.\n\nClick "
  397.         "Proceed if you want the installer to do this automatically, or "
  398.         "click 'Skip This Part' to not modify the user-startup."
  399.     )
  400. )
  401.  
  402.  
  403.  
  404.  
  405. ;------------------------------------------------------
  406. ; ### Procedure declarations
  407.  
  408. ;------------------------------------------------------
  409. ;// routine to get disk specified in '#FileSourceDisk'
  410. (procedure @GetDisk
  411.     (
  412.         (askdisk
  413.             (prompt #InsertDiskMsg #FileSourceDisk)
  414.             (help #diskhelp)
  415.             (dest #FileSourceDisk)
  416.         )
  417.     )
  418. )
  419.  
  420. ;------------------------------------------------------
  421. ;// Procedure to decompress file set in '#UnpackFile' to '#UnpackDest'
  422. (procedure @UnpackFiles
  423.     (
  424.       (working #Unpackmsg1 #UnpackFile #Unpackmsg2 #UnpackDest #Unpackmsg3)
  425.         (set ExpandName #UnpackFile)
  426.         (set #ArchiveError 0)
  427.         (set RunLhx
  428.             (cat "DSUtils:Lhx -I -m e \"" ExpandName "\" \"" #UnpackDest "\"")
  429.         )
  430.         (set #ArchiveError (run RunLhx))
  431.         (if (> #ArchiveError 0)
  432.             (ca
  433.                 (set #ArchiveAbortMsg (cat #ArchiveAbortMsg1 ExpandName #ArchiveAbortMsg2))
  434.                 (abort #ArchiveAbortMsg)
  435.             )
  436.         )
  437.     )
  438. )
  439.  
  440. ;------------------------------------------------------
  441. ;// Initial Checks
  442. (procedure @InitialChecks
  443.     (
  444.         ;// Check OS version
  445.         (working #CheckStartup)
  446.  
  447.         (set #OSVerNum (getversion))
  448.         (set #OSVersion (/ #OSVerNum 65536))
  449.  
  450.         (if (< #OSVersion 37)
  451.             (abort #BadKick)
  452.         )
  453.         (if (< #OSVersion 39) ; WB2.##
  454.             (set #InstallDataTypes "False")
  455.           (set #InstallDataTypes "True")
  456.         )
  457.  
  458.         ;// Create temp file in ram: for files
  459.         (if (not (exists #RamTempFile))
  460.             (
  461.                 (makedir #RamTempFile (safe))
  462.             )
  463.         )
  464.     (makeassign "DSTemp" #RamTempFile (safe))
  465.  
  466.         ;// Create temp file in ram: for utils
  467.         (if (not (exists #RamUtils))
  468.             (
  469.                 (makedir #RamUtils (safe))
  470.             )
  471.         )
  472.     (makeassign "DSUtils" #RamUtils (safe))
  473.  
  474.     ;// Set flag if novice user
  475.     (set #UserNovice 0)
  476.     (if (= @user-level 0)
  477.       (
  478.         (set #UserNovice 1)
  479.       )
  480.     )
  481.       (copyfiles
  482.             (source (cat #DSInstallDisk ":Utils"))
  483.             (dest "DSUtils:")
  484.             (all)
  485.             (nogauge)
  486.             (optional "nofail")
  487.         )
  488.       ;// don't copy delete to DSUtils, as it is used to delete DSUtils!
  489.       (copyfiles
  490.             (source (cat #DSInstallDisk ":c"))
  491.             (dest "Ram:")
  492.             (pattern "delete")
  493.             (nogauge)
  494.             (optional "nofail")
  495.         )
  496.       (copyfiles
  497.             (source (cat #DSInstallDisk ":System"))
  498.             (dest "DSUtils:")
  499.             (pattern "format")
  500.             (nogauge)
  501.             (optional "nofail")
  502.         )
  503.     )
  504. )
  505.  
  506. ;------------------------------------------------------
  507. ;// Check that ASL library if from WB 2.1 (if not replace)
  508. (procedure @CheckASL
  509.     (
  510.         (set ASLVerNum (getversion (cat #LibsDefault ":ASL.library")))
  511.         (set ASLVer (/ ASLVerNum 65536))
  512.         (if (< ASLVer 38)
  513.             (
  514.         (if (= @user-level 2)
  515.             (
  516.                 (set InstallASLLibrary
  517.                   (askbool
  518.                        (prompt #OldASLLibraryMsg)
  519.                        (choices #InstallChoice1 #InstallChoice2)
  520.                        (help #OldASLLibraryHelp)
  521.                        (default 1)
  522.                   )
  523.                     )
  524.                 (if (= InstallASLLibrary 1)
  525.                      (
  526.                        (@InstallASL)
  527.                   )
  528.                 )
  529.               )
  530.               (
  531.                   (@InstallASL)
  532.               )
  533.             )
  534.           )
  535.         ) ;endif
  536.     )
  537. )
  538.  
  539. ;------------------------------------------------------
  540. ;// Procedure to install the asl library
  541. (procedure @InstallASL
  542.     (
  543.     (set #UnpackFile (cat #ArchiveLocation #ASLArchiveName))
  544.     (set #UnpackDest #LibsDest)
  545.  
  546.         (if (exists (cat #UnpackDest "asl.library"))
  547.             (delete (cat #UnpackDest "asl.library")
  548.                 (optional "force")
  549.             )
  550.         )
  551.     (@UnpackFiles)
  552.     )
  553. )
  554.  
  555. ;------------------------------------------------------
  556. ;// Check that Locale library is from WB 2.1 (if not replace)
  557. (procedure @CheckLocale
  558.     (
  559.         (set LocaleVerNum (getversion (cat #LibsDefault ":Locale.library")))
  560.         (set LocaleVer (/ LocaleVerNum 65536))
  561.         (if (< LocaleVer 38)
  562.             (
  563.         (if (= @user-level 2)
  564.             (
  565.                 (set InstallLocaleLibrary
  566.                   (askbool
  567.                        (prompt #OldLocaleLibraryMsg)
  568.                        (choices #InstallChoice1 #InstallChoice2)
  569.                        (help #OldLocaleLibraryHelp)
  570.                        (default 1)
  571.                   )
  572.                     )
  573.                 (if (= InstallLocaleLibrary 1)
  574.                      (
  575.                        (@InstallLocale)
  576.                   )
  577.                 )
  578.               )
  579.               (
  580.                   (@InstallLocale)
  581.               )
  582.             )
  583.           )
  584.         ) ;endif
  585.     )
  586. )
  587.  
  588. ;------------------------------------------------------
  589. ;// Procedure to install the locale library
  590. (procedure @InstallLocale
  591.     (
  592.         (if (exists (cat #LibsDefault ":locale.library"))
  593.             (
  594.                 (delete (cat #LibsDefault ":locale.library")
  595.                     (optional "force")
  596.                 )
  597.             )
  598.         )
  599.  
  600.         (copyfiles
  601.             (source #LibsSource)
  602.             (dest (cat #LibsDefault ":"))
  603.             (pattern "locale.library")
  604.             (optional "force")
  605.         )
  606.     )
  607. )
  608.  
  609.  
  610. ;------------------------------------------------------
  611. ;// Check that IFFParse library if from WB 1.3 (if not replace)
  612. (procedure @CheckParse
  613.     (
  614.         (set ParseVerNum (getversion (cat #LibsDefault ":iffparse.library")))
  615.         (set ParseVer (/ ParseVerNum 65536))
  616.         (if (< ParseVer 34)
  617.             (
  618.         (if (= @user-level 2)
  619.             (
  620.                 (set InstallParseLibrary
  621.                   (askbool
  622.                        (prompt #OldParseLibraryMsg)
  623.                        (choices #InstallChoice1 #InstallChoice2)
  624.                        (help #OldParseLibraryHelp)
  625.                        (default 1)
  626.                   )
  627.                     )
  628.                 (if (= InstallParseLibrary 1)
  629.                      (
  630.                        (@InstallParse)
  631.                   )
  632.                 )
  633.               )
  634.               (
  635.                   (@InstallParse)
  636.               )
  637.             )
  638.           )
  639.         ) ;endif
  640.     )
  641. )
  642.  
  643. ;------------------------------------------------------
  644. ;// Procedure to install the iffparse library
  645. (procedure @InstallParse
  646.     (
  647.         (if (exists (cat #LibsDefault ":iffparse.library"))
  648.             (
  649.                 (delete (cat #LibsDefault ":iffparse.library")
  650.                     (optional "force")
  651.                 )
  652.             )
  653.         )
  654.  
  655.         (copyfiles
  656.             (source #LibsSource)
  657.             (dest (cat #LibsDefault ":"))
  658.             (pattern "iffparse.library")
  659.             (optional "force")
  660.         )
  661.     )
  662. )
  663.  
  664.  
  665. ;------------------------------------------------------
  666. ;// Check that diskfont library is at least WB 2.1 (if not replace)
  667. (procedure @CheckDiskFont
  668.     (
  669.         (set DFVerNum (getversion (cat #LibsDefault ":diskfont.library")))
  670.         (set DFVer (/ DFVerNum 65536))
  671.         (if (< DFVer 37)
  672.             (
  673.         (if (= @user-level 2)
  674.             (
  675.                 (set InstallDiskFontLibrary
  676.                   (askbool
  677.                        (prompt #OldDiskFontLibraryMsg)
  678.                        (choices #InstallChoice1 #InstallChoice2)
  679.                        (help #OldDiskFontLibraryHelp)
  680.                        (default 1)
  681.                   )
  682.                     )
  683.                 (if (= InstallDiskFontLibrary 1)
  684.                      (
  685.                        (@InstallDiskFont)
  686.                   )
  687.                 ) ;end if
  688.               )
  689.               (
  690.                   (@InstallDiskFont)
  691.               )
  692.             ) ;end if
  693.           )
  694.         ) ;endif
  695.     )
  696. )
  697.  
  698. ;------------------------------------------------------
  699. ;// Procedure to install the diskfont library
  700. (procedure @InstallDiskFont
  701.     (
  702.         (if (exists (cat #LibsDefault "diskfont.library"))
  703.             (delete (cat #LibsDefault "diskfont.library")
  704.                 (optional "force")
  705.             )
  706.         )
  707.         (copyfiles
  708.             (source #LibsSource)
  709.             (dest (cat #LibsDefault ":"))
  710.             (pattern "diskfont.library")
  711.             (optional "force")
  712.         )
  713.     )
  714. )
  715.  
  716. ;------------------------------------------------------
  717. ;** Check that AmigaGuide library is at least version 34.11 (if not replace)
  718. (procedure @CheckAmigaGuide
  719.     (
  720.         (set AGVerNum (getversion (cat #LibsDefault ":amigaguide.library")))
  721.         (set AGVer (/ AGVerNum 65536))
  722.         (set AGRev (- AGVerNum (* AGVer 65536)))
  723.         (if (< AGVer 35)
  724.             (
  725.         (if (< AGRev 11)
  726.             (
  727.                 (if (= @user-level 2)
  728.                     (
  729.                         (set InstallAmigaGuideLibrary
  730.                           (askbool
  731.                                (prompt #OldAmigaGuideLibraryMsg)
  732.                                (choices #InstallChoice1 #InstallChoice2)
  733.                                (help #OldAmigaGuideLibraryHelp)
  734.                                (default 1)
  735.                           )
  736.                             )
  737.                         (if (= InstallAmigaGuideLibrary 1)
  738.                              (
  739.                                (@InstallAmigaGuide)
  740.                           )
  741.                         );end if
  742.                       )
  743.                       (
  744.                           (@InstallAmigaGuide)
  745.                       )
  746.                     ) ;end if (user-level)
  747.                   )
  748.                 ) ;end if (revision)
  749.           )
  750.         ) ;end if (version)
  751.     )
  752. )
  753.  
  754. ;------------------------------------------------------
  755. ;// Procedure to install amigaguide library
  756. (procedure @InstallAmigaGuide
  757.     (
  758.     (set #UnpackFile (cat #ArchiveLocation #AmigaGuideArchiveName))
  759.     (set #UnpackDest #LibsDest)
  760.         (if (exists (cat #UnpackDest "amigaguide.library"))
  761.             (delete (cat #UnpackDest "amigaguide.library")
  762.                 (optional "force")
  763.             )
  764.         )
  765.     (@UnpackFiles)
  766.   )
  767. )
  768.  
  769. ;------------------------------------------------------
  770. ;// Procedure to unprotect screen fonts if already present
  771. (procedure @UnProtectFonts
  772.     (
  773.         (set #Counter 0)
  774.         (while (< #Counter #NumFonts)
  775.         (
  776.             (set #FontName
  777.                 (select #Counter
  778.                     #Font1Name
  779.                     #Font2Name
  780.                     #Font3Name
  781.                 )
  782.             )
  783.             (set #CheckFont (tackon #SystemFontsDest #FontName))
  784.             (if (exists #CheckFont)
  785.               (
  786.                 (protect #CheckFont "+r+w+e+d")
  787.               )
  788.             )
  789.           (set #Counter (+ #Counter 1))
  790.         )
  791.         )
  792.     )
  793. )
  794.  
  795. ;------------------------------------------------------
  796. ;// Procedure to de-archive screen fonts
  797. (procedure @DearchiveScreenFonts
  798.     (
  799.     (set #UnpackFile (cat #ArchiveLocation #SystemFontsArchiveName))
  800.         (set #UnpackDest #SystemFontsDest)
  801.         (@UnpackFiles)
  802.   )
  803. )
  804.  
  805. ;------------------------------------------------------
  806. ;// Install to HD or Floppy ?
  807. (procedure @CheckHDorFloppy
  808.     (
  809.         ;// Floppy or HD ?
  810.         (set #FullPath (expandpath "sys:"))
  811.         (if (= #FullPath (cat #DSInstallDisk ":"))
  812.             (set #DiskDefault 1)
  813.             (set #DiskDefault 0)
  814.         )
  815.  
  816.  
  817.     ;** set novice user to expert briefly
  818.     (set #UserNovice 0)
  819.     (if (= @user-level 0)
  820.       (
  821.         (user 2)
  822.         (set #UserNovice 1)
  823.       )
  824.     )
  825.       (set #DestinationType
  826.       (askchoice
  827.         (prompt #DestChoicePrompt)
  828.         (choices #HardDiskChoiceMsg
  829.              #FloppyChoiceMsg
  830.         )
  831.         (help #DestChoiceHelp)
  832.         (default #DiskDefault)
  833.       )
  834.     )
  835.     ;** set novice user back to novice
  836.     (if (= #UserNovice 1)
  837.       (user 0)
  838.     )
  839.  
  840.     (if (= #DestinationType 0)
  841.         (set #DestinationType "Hard")
  842.         (set #DestinationType "Floppy")
  843.     )
  844.     )
  845. )
  846.  
  847. ;------------------------------------------------------
  848. ;// Choose hard disk destination for datastore drawer
  849. (procedure @ChooseHDDest
  850.     (
  851.         ;** Find default drawer
  852.         (set #DefaultDest (getassign "Work" "d"))
  853.         (if (= #DefaultDest "")
  854.             (
  855.                 (set #DefaultDest (getassign "HD3" "d"))
  856.                 (if (= #DefaultDest "")
  857.                     (
  858.                         (set #DefaultDest (getassign "HD2" "d"))
  859.                         (if (= #DefaultDest "")
  860.                 (
  861.                 (set #DefaultDest (getassign "HD1" "d"))
  862.                 (if (= #DefaultDest "")
  863.                   (
  864.                     (set #DefaultDest (getassign "DH1" "d"))
  865.                     (if (= #DefaultDest "")
  866.                       (
  867.                         (set #DefaultDest (getassign "HD0" "d"))
  868.                         (if (= #DefaultDest "")
  869.                           (
  870.                             (set #DefaultDest "DH0:")
  871.                             (if (= #UserNovice 1)
  872.                               (user 2)
  873.                             )
  874.                           )
  875.                         )
  876.                       )
  877.                     )
  878.                   )
  879.                 )
  880.               )
  881.             )
  882.           )
  883.         )
  884.             )
  885.         )
  886.         ;** Ask for destination
  887.         (set #DestDrawer
  888.             (askdir
  889.                 (prompt #HardDiskDestChoiceMsg)
  890.                 (help #HardDiskDestChoiceHelp)
  891.                 (default #DefaultDest)
  892.             )
  893.         )
  894.     (if (= #UserNovice 1)
  895.       (user 0)
  896.     )
  897.     )
  898. )
  899.  
  900.  
  901. ;------------------------------------------------------
  902. ;// Find HD Destination and check enough space
  903. (procedure @FindHDDest
  904.     (
  905.         (set DSExists 0)
  906.     (while (= DSExists 0)
  907.             (
  908.           (@ChooseHDDest)
  909.           (while (< (getdiskspace #DestDrawer) #HDSpaceNeededBytes)
  910.             (
  911.               (if (< (getdiskspace #DestDrawer) #HDSpaceNeededBytes)
  912.                 (
  913.                             (if (= @user-level 0)
  914.                               (
  915.                                 (user 2)
  916.                                 (set #UserNovice 1)
  917.                               )
  918.                             )
  919.                   (message #NoDiskSpaceMsg1 (/ (/ #HDSpaceNeededBytes 1024) 1024) #NoDiskSpaceMsg2)
  920.                   (@ChooseHDDest)
  921.                 )
  922.                  )
  923.             )
  924.             ) ;end while
  925.             (@CheckExistsAlready)
  926.         )
  927.       );end while
  928.     (if (= #UserNovice 1)
  929.       (user 0)
  930.     )
  931.     )
  932. )
  933.  
  934. ;------------------------------------------------------
  935. ;// Procedure to check if Datastore exists already in destination
  936. ;// Replace or choose again if so
  937. (procedure @CheckExistsAlready
  938.     (
  939.     (if (exists (tackon #DestDrawer #DSDrawerName))
  940.       (
  941.         (set ChooseAgainAnswer
  942.           (askbool
  943.             (prompt #DrawerExistsMsg)
  944.             (choices #DrawerExistsChoice1 #DrawerExistsChoice2)
  945.             (help #DrawerExistsHelp)
  946.             (default 1)
  947.           )
  948.         )
  949.         (if (= ChooseAgainAnswer 0)
  950.           (
  951.             (set DSExists 0)
  952.           )
  953.           (
  954.             (set DSExists 1)
  955.           )
  956.         )
  957.       )
  958.       (;else
  959.         (set DSExists 1)
  960.       )
  961.     );endif
  962.     )
  963. )
  964.  
  965. ;------------------------------------------------------
  966. ;// Create Datastore drawers in chosen destination
  967. (procedure @CreateDrawers
  968.     (
  969.         (working #WorkingMsg)
  970.         (set #InsideHDDest (tackon #DestDrawer #DSDrawerName))
  971.         ;// Make the Datastore drawer
  972.         (makedir #InsideHDDest (infos))
  973.  
  974.         ;// Make the Help drawer
  975.         (set #HDHelpDest (tackon #InsideHDDest #DSHelpName))
  976.         (makedir #HDHelpDest)
  977.  
  978.         ;// Make the Docs drawer
  979.         (set #HDDocsDest (tackon #InsideHDDest #DSDocsName))
  980.         (makedir #HDDocsDest (infos))
  981.  
  982.         ;// Make the Pics drawer
  983.         (set #HDPicsDest (tackon #InsideHDDest #DSPicsName))
  984.         (makedir #HDPicsDest (infos))
  985.     )
  986. )
  987.  
  988. ;------------------------------------------------------
  989. ;// set up hard drive destinations
  990. (procedure @SetUpHDProgDests
  991.     (
  992.         (working #WorkingMsg)
  993.         (set #LibsDest (cat #LibsDefault ":"))
  994.         (set #ProgDest (cat #InsideHDDest "/"))
  995.         (set #ProgIcon (cat #ProgDest #ProgName))
  996.         (set #HelpDest (cat #HDHelpDest "/"))
  997.         (set #DocsDest (cat #HDDocsDest "/"))
  998.         (set #PicsDest (cat #HDPicsDest "/"))
  999.       (set #SystemFontsDest (cat "Sys:" #DSFontsName "/"))
  1000.     )
  1001. )
  1002.  
  1003. ;------------------------------------------------------
  1004. ;// set up floppy disk destinations
  1005. (procedure @SetUpFloppyProgDests
  1006.     (
  1007.         (set #ProgDest (cat #DSDiskName ":"))
  1008.         (set #HelpDest (cat #DSFilesName ":" #DSHelpName "/"))
  1009.         (set #DocsDest (cat #DSFilesName ":" #DSDocsName "/"))
  1010.         (set #PicsDest (cat #DSDiskName ":" #DSPicsName "/"))
  1011.       (set #SystemFontsDest (cat #DSDiskName ":" #DSFontsName "/"))
  1012.     (set #LibsDest (cat #DSDiskName ":Libs/"))
  1013.     (set #DataTypesDest (cat #DSDiskName ":Devs/" #DataTypesDrawerName "/"))
  1014.     (set #ClassesDest
  1015.         (cat #DSDrawerName ":" #ClassesDrawerName "/" #DataTypesDrawerName "/")
  1016.     )
  1017.     )
  1018. )
  1019.  
  1020. ;------------------------------------------------------
  1021. ;// Check to make sure that none of the Datastore disks
  1022. ;// are in the internal drive before creating blank ones.
  1023. (procedure @CheckDisks
  1024.     (
  1025.         (set #NumberDisks (+ #NumberInstallDisks #NumNewDSDisks))
  1026.         (set #DiskBlank 1)
  1027.         (set n 0)
  1028.         (until (OR (= n #NumberDisks) (= #DiskBlank 0))
  1029.             (
  1030.                 (set #CheckDiskName
  1031.                     (select n
  1032.                         #DSInstallDisk
  1033.                         #DSDiskName
  1034.                         #DSFilesName
  1035.                     )
  1036.                 )
  1037.                 (if (= (getassign "df0" "d") (cat #CheckDiskName ":"))
  1038.                     (    ;disk is not blank
  1039.                         (set #DiskBlank 0)
  1040.                     )
  1041.                 )
  1042.                 (set n (+ n 1))
  1043.             )
  1044.         )
  1045.     )
  1046. )
  1047.  
  1048.  
  1049. ;------------------------------------------------------
  1050. ;// Format and name the disk given in #FormatDiskName
  1051. (procedure @FormatDisk
  1052.     (
  1053.         (working #FormatWorkingMsg)
  1054.         ;*** USE 2.0 FORMAT COMMAND ***
  1055.         (if (= #FormatChoice 0)
  1056.             (
  1057.                 (set #FormatCheck
  1058.                     (run ("DSUtils:Format drive=df0: name=%s FFS NOICONS" #FormatDiskName))
  1059.                 )
  1060.             )
  1061.             (
  1062.                 (set #FormatCheck
  1063.                     (run ("DSUtils:Format drive=df0: name=%s FFS QUICK NOICONS" #FormatDiskName))
  1064.                 )
  1065.             )
  1066.         )
  1067.     (if (OR (> #FormatCheck 0) (< #FormatCheck 0))
  1068.         (set #NoError 1)
  1069.            (set #NoError 0)
  1070.     )
  1071.         (if (= #NoError 0)
  1072.             (
  1073.                 (if (= #FormatDiskName #DSDiskName)
  1074.                     (run "DSUtils:Install2.1 df0:")
  1075.                 )
  1076.             )
  1077.         ); endif
  1078.     )
  1079. )
  1080.  
  1081. ;------------------------------------------------------
  1082. ;// routine to check disk in drive ok and format it if so
  1083. (procedure @Makedisk
  1084.     (
  1085.     (set #NoError 1)
  1086.     (while (= #NoError 1)
  1087.         (
  1088.             ;** Make sure that the install disks are not in the drive
  1089.             (run "DSUtils:Wait 6")  ;Wait a bit for disk access to stop
  1090.             (@CheckDisks)
  1091.             (if (= #DiskBlank 0)
  1092.               (
  1093.                 (message #NotBlankMsg1 #CheckDiskName #NotBlankMsg2)
  1094.               )
  1095.               (
  1096.                 (set #NoError 1)
  1097.                 (@FormatDisk)
  1098.                 (if (= #NoError 1)
  1099.                   (
  1100.                     (message #FormatError (help #FormatErrorHelp))
  1101.                   )
  1102.                 );endif
  1103.               )
  1104.             );endif
  1105.         )
  1106.     );endwhile
  1107.   )
  1108. )
  1109.  
  1110. ;------------------------------------------------------
  1111. ;// Create floppy disk 1
  1112. (procedure @CreateDisk1
  1113.     (
  1114.     ;// Copy system files from install disk to Ram...
  1115.     (copyfiles
  1116.         (source (cat #DSInstallDisk ":Libs"))
  1117.         (dest "RAM:Libs")
  1118.         (all)
  1119.         (optional "force")
  1120.     )
  1121.     (copyfiles
  1122.         (source (cat #DSInstallDisk ":c"))
  1123.         (dest "RAM:c")
  1124.         (all)
  1125.         (optional "force")
  1126.     )
  1127.     (copyfiles
  1128.         (source (cat #DSInstallDisk ":l"))
  1129.         (dest "RAM:l")
  1130.         (all)
  1131.         (optional "force")
  1132.     )
  1133. ;    (copyfiles
  1134. ;        (source (cat #DSInstallDisk ":system"))
  1135. ;        (dest "RAM:system")
  1136. ;        (all)
  1137. ;        (optional "force")
  1138. ;   )
  1139.     (copyfiles
  1140.       (source (cat #DSInstallDisk ":Devs"))
  1141.       (dest "RAM:Devs")
  1142.       (all)
  1143.       (optional "force")
  1144.     )
  1145.     (copyfiles
  1146.       (source (cat #DSInstallDisk ":prefs"))
  1147.       (dest "RAM:prefs")
  1148.       (all)
  1149.       (optional "force")
  1150.     )
  1151.  
  1152.         (copyfiles
  1153.           (source (cat #DSInstallName ":Locale"))
  1154.           (dest "RAM:Locale")
  1155.           (all)
  1156.           (optional "force")
  1157.         )
  1158.         ;# Don't want the installer.catalog if German
  1159.         (if (= @Language "deutsch")
  1160.             (run "ram:delete RAM:Locale/Catalogs/Deutsch/sys/installer.catalog" (safe))
  1161.         )
  1162.  
  1163.     ;// Now create the first disk
  1164.       (message #BlankDiskWarning
  1165.           (help #FloppyWarningHelp)
  1166.       )
  1167.       (set #FormatDiskName #DSDiskName)
  1168.       (@Makedisk)
  1169.  
  1170.     ;// Now copy all files from RAM to disk 1, then delete them.
  1171.     (set #FileSourceDisk #DSDiskName)
  1172.     (@GetDisk)
  1173.  
  1174.     (copyfiles
  1175.         (source "RAM:Libs")
  1176.         (dest (cat #DSDiskName ":Libs"))
  1177.         (all)
  1178.         (optional "force")
  1179.     )
  1180.         (run "ram:delete RAM:Libs all" (safe))
  1181.  
  1182.     (copyfiles
  1183.         (source "RAM:l")
  1184.         (dest (cat #DSDiskName ":l"))
  1185.         (all)
  1186.         (optional "force")
  1187.     )
  1188.         (run "ram:delete RAM:l all" (safe))
  1189.  
  1190. (complete 20)
  1191.  
  1192.     (copyfiles
  1193.         (source "RAM:c")
  1194.         (dest (cat #DSDiskName ":c"))
  1195.         (all)
  1196.         (optional "force")
  1197.     )
  1198.         (run "ram:delete RAM:c all" (safe))
  1199.  
  1200. ;    (copyfiles
  1201. ;        (source "RAM:system")
  1202. ;        (dest (cat #DSDiskName ":system"))
  1203. ;        (all)
  1204. ;        (optional "force")
  1205. ;    )
  1206. ;        (run "ram:delete RAM:system all" (safe))
  1207.  
  1208.     (copyfiles
  1209.       (source "RAM:Devs")
  1210.       (dest (cat #DSDiskName ":Devs"))
  1211.       (all)
  1212.       (optional "force")
  1213.     )
  1214.         (run "ram:delete RAM:Devs all" (safe))
  1215.  
  1216.     (copyfiles
  1217.       (source "RAM:prefs")
  1218.       (dest (cat #DSDiskName ":prefs"))
  1219.       (all)
  1220.       (optional "force")
  1221.     )
  1222.         (run "ram:delete RAM:prefs all" (safe))
  1223.  
  1224.     (copyfiles
  1225.       (source "RAM:Locale")
  1226.       (dest (cat #DSDiskName ":Locale"))
  1227.       (all)
  1228.       (optional "force")
  1229.     )
  1230.         (run "ram:delete RAM:Locale all" (safe))
  1231.  
  1232.         ;## Now install other devices
  1233.         ;## DISK SWAP to get rest of archives
  1234.     (set #FileSourceDisk #DSInstallDisk)
  1235.     (@GetDisk)
  1236.  
  1237.  
  1238.     ;// ... some archives...
  1239.     (copyfiles
  1240.             (source (cat #DSInstallDisk ":Archive"))
  1241.             (dest "DSTemp:")
  1242.             (pattern ("~(Datastore.lha|Pictures.lha|Databases.lha|Help.lha)"))
  1243.             (optional "force")
  1244.           (safe)
  1245.         )
  1246.  
  1247.  
  1248.         ;## DISK SWAP back again to dearchive to disk
  1249.     (set #FileSourceDisk #DSDiskName)
  1250.     (@GetDisk)
  1251.  
  1252.     (makedir (cat #DSDiskName ":" #DSPicsName) (infos))
  1253.  
  1254.     (set #UnpackFile (cat #ArchiveLocation #DevicesArchiveName))
  1255.     (set #UnpackDest (cat #DSDiskName ":Devs/"))
  1256.     (@UnpackFiles)
  1257.         (run (cat "ram:delete " #ArchiveLocation #DevicesArchiveName) (safe))
  1258.  
  1259. (complete 30)
  1260.  
  1261.         (@DearchiveScreenFonts)
  1262.         (run (cat "ram:delete " #ArchiveLocation #SystemFontsArchiveName) (safe))
  1263.  
  1264.         (@InstallASL)
  1265.         (run (cat "ram:delete " #ArchiveLocation #ASLArchiveName) (safe))
  1266.  
  1267.         (@InstallAmigaGuide)
  1268.         (run (cat "ram:delete " #ArchiveLocation #AmigaGuideArchiveName) (safe))
  1269.  
  1270.     (set #UnpackFile (cat #ArchiveLocation #MathLibsArchiveName))
  1271.     (set #UnpackDest (cat #DSDiskName ":Libs/"))
  1272.     (@UnpackFiles)
  1273.         (run (cat "ram:delete " #ArchiveLocation #MathLibsArchiveName) (safe))
  1274.  
  1275.     (set #UnpackFile (cat #ArchiveLocation #StartupArchiveName))
  1276.     (set #UnpackDest (cat #DSDiskName ":S/"))
  1277.     (@UnpackFiles)
  1278.         (run (cat "ram:delete " #ArchiveLocation #StartupArchiveName) (safe))
  1279.  
  1280.       (if (= #InstallDataTypes "True")
  1281.           (
  1282.             ;// Install Datatypes...
  1283.             (makedir (cat #DSDiskName ":Devs/" #DataTypesDrawerName))
  1284.             (set #UnpackFile (cat #ArchiveLocation #DataTypesArchiveName))
  1285.             (set #UnpackDest #DataTypesDest)
  1286.             (@UnpackFiles)
  1287.             )
  1288.         )
  1289.         (run (cat "ram:delete " #ArchiveLocation #DataTypesArchiveName) (safe))
  1290.  
  1291. (complete 40)
  1292.  
  1293.       (if (= #InstallDataTypes "True")
  1294.           (
  1295.             ;// Install Datatypes Library...
  1296.             (set #UnpackFile (cat #ArchiveLocation #DataTypesLibArchiveName))
  1297.             (set #UnpackDest (cat #DSDiskName ":Libs/"))
  1298.             (@UnpackFiles)
  1299.             )
  1300.         )
  1301.         (run (cat "ram:delete " #ArchiveLocation #DataTypesLibArchiveName) (safe))
  1302.  
  1303.       (if (= #InstallDataTypes "True")
  1304.           (
  1305.             ;// Install Datatypes Classes...
  1306.             (makedir (cat #DSDrawerName ":" #ClassesDrawerName))
  1307.             (makedir
  1308.                 (cat #DSDrawerName ":" #ClassesDrawerName "/" #DataTypesDrawerName)
  1309.             )
  1310.             (set #UnpackFile (cat #ArchiveLocation #ClassesArchiveName))
  1311.             (set #UnpackDest #ClassesDest)
  1312.             (@UnpackFiles)
  1313.             )
  1314.         )
  1315.         (run (cat "ram:delete " #ArchiveLocation #ClassesArchiveName) (safe))
  1316.  
  1317.  
  1318.         ;## DISK SWAP to get rest of archives
  1319.     (set #FileSourceDisk #DSInstallDisk)
  1320.     (@GetDisk)
  1321.  
  1322.     ;// ... some archives...
  1323.     (copyfiles
  1324.             (source (cat #DSInstallDisk ":Archive"))
  1325.             (dest "DSTemp:")
  1326.             (pattern ("(Datastore.lha|Pictures.lha)"))
  1327.             (optional "force")
  1328.           (safe)
  1329.         )
  1330.  
  1331.  
  1332.         ;## DISK SWAP back again to dearchive to disk
  1333.     (set #FileSourceDisk #DSDiskName)
  1334.     (@GetDisk)
  1335.  
  1336.         (@InstallPictures)
  1337.         (run (cat "ram:delete " #ArchiveLocation #PicsArchiveName) (safe))
  1338.  
  1339. (complete 50)
  1340.  
  1341.         (@InstallProg)
  1342.         (run (cat "ram:delete " #ArchiveLocation #ProgArchiveName) (safe))
  1343.  
  1344.         (tooltype
  1345.             (dest #DSToolDest)
  1346.             (setstack 15000)
  1347.         )
  1348.  
  1349.         (tooltype
  1350.             (dest #DSToolDest)
  1351.             (settooltype #LanguageTool @Language)
  1352.         )
  1353.         (tooltype
  1354.             (dest #DSToolDest)
  1355.             (settooltype #DocsTool #DocsDest)
  1356.         )
  1357.         (tooltype
  1358.             (dest #DSToolDest)
  1359.             (settooltype #PicsTool #PicsDest)
  1360.         )
  1361.         (tooltype
  1362.             (dest #DSToolDest)
  1363.             (settooltype #HelpTool #HelpDest)
  1364.         )
  1365. (complete 60)
  1366.  
  1367.     )
  1368. )
  1369.  
  1370. ;------------------------------------------------------
  1371. ;// Create floppy disk 2
  1372. (procedure @CreateDisk2
  1373.     (
  1374.     (set #FileSourceDisk #DSInstallDisk)
  1375.     (@GetDisk)
  1376.     (copyfiles
  1377.             (source (cat #DSInstallDisk ":Archive"))
  1378.             (dest "DSTemp:")
  1379.             (pattern ("(Databases.lha|Help.lha)"))
  1380.             (optional "force")
  1381.           (safe)
  1382.         )
  1383.  
  1384.         ;// Now create the second disk
  1385.       (message #BlankDiskWarning
  1386.           (help #FloppyWarningHelp)
  1387.       )
  1388.       (set #FormatDiskName #DSFilesName)
  1389.       (@Makedisk)
  1390.  
  1391. (complete 70)
  1392.  
  1393.         ;// Create the drawers with icons.
  1394.     (makedir (cat #DSFilesName ":" #DSDocsName) (infos))
  1395.  
  1396.     ;// Now copy all files from RAM to disk 2, then delete them.
  1397.     (set #FileSourceDisk #DSFilesName)
  1398.     (@GetDisk)
  1399.  
  1400.         (@InstallTemplates)
  1401.         (run (cat "ram:delete " #ArchiveLocation #DocsArchiveName) (safe))
  1402.  
  1403. (complete 80)
  1404.  
  1405.         (@InstallHelp)
  1406.         (run (cat "ram:delete " #ArchiveLocation #HelpArchiveName) (safe))
  1407.     )
  1408. )
  1409.  
  1410. ;------------------------------------------------------
  1411. ;// Install program files
  1412. (procedure @InstallProg
  1413.     (
  1414.       (working #WorkingMsg)
  1415.     (set #UnpackFile (cat #ArchiveLocation #ProgArchiveName))
  1416.     (set #UnpackDest #ProgDest)
  1417.     (@UnpackFiles)
  1418.   )
  1419. )
  1420.  
  1421. ;------------------------------------------------------
  1422. ;// Install help files
  1423. (procedure @InstallHelp
  1424.     (
  1425.         (working #WorkingMsg)
  1426.     (set #UnpackFile (cat #ArchiveLocation #HelpArchiveName))
  1427.     (set #UnpackDest #HelpDest)
  1428.     (@UnpackFiles)
  1429.     )
  1430. )
  1431.  
  1432. ;------------------------------------------------------
  1433. ;// Install templates
  1434. (procedure @InstallTemplates
  1435.     (
  1436.         (working #WorkingMsg)
  1437.     (set #UnpackFile (cat #ArchiveLocation #DocsArchiveName))
  1438.     (set #UnpackDest #DocsDest)
  1439.     (@UnpackFiles)
  1440.     )
  1441. )
  1442.  
  1443. ;------------------------------------------------------
  1444. ;// Install pictures
  1445. (procedure @InstallPictures
  1446.     (
  1447.         (working #WorkingMsg)
  1448.     (set #UnpackFile (cat #ArchiveLocation #PicsArchiveName))
  1449.     (set #UnpackDest #PicsDest)
  1450.     (@UnpackFiles)
  1451.     )
  1452. )
  1453.  
  1454. ;------------------------------------------------------
  1455. ;// Routine to install printer and fonts
  1456. (procedure @AddNewPrinter
  1457.     (
  1458.     (set #FileSourceDisk #DSInstallDisk)
  1459.     (@GetDisk)
  1460.  
  1461.     ;// Delete all in DSTemp: first...
  1462.         (run (cat "ram:delete DSTemp:#?" ) (safe))
  1463.     (set #ChosenDriver "Generic")
  1464.     (set #DriverSource (cat #DSInstallDisk ":Drivers"))
  1465.         (if (= #DestinationType "Floppy")
  1466.         (
  1467.             (set #DriverDest (cat #DSDiskName ":Devs/Printers"))
  1468.           )
  1469.           (
  1470.             (set #DriverDest "DEVS:Printers")
  1471.                 (set #CheckGeneric (cat #DriverDest "/" #ChosenDriver))
  1472.                 (if (exists #CheckGeneric)
  1473.                   (
  1474.                     (protect #CheckGeneric "+r+w+e+d")
  1475.                   )
  1476.                 )
  1477.           )
  1478.         )
  1479.  
  1480.     ;// Select printer (or driver) from list...
  1481.     (working #WorkingMsg)
  1482.     (set #SelectPrt
  1483.       (cat "DSUtils:select DSUtils:DSPrinterList")
  1484.     )
  1485.     (run #SelectPrt (safe))
  1486.     (set #ChosenDriver (getenv "wwDriver"))
  1487.     (working #WorkingMsg)
  1488.  
  1489.     ;// driver chosen so copy it to ram...
  1490.     (copyfiles
  1491.       (source #DriverSource)
  1492.       (dest #RamTempFile)
  1493.       (pattern #ChosenDriver)
  1494.       (optional "force")
  1495.       (nogauge)
  1496.     )
  1497.  
  1498.     ;// Now decompress Driver 'ChosenDriver' to destination '#RamTempFile'...
  1499.     (set #UnpackFile (tackon #RamTempFile #ChosenDriver))
  1500.     (set #UnpackDest "DSTemp:")
  1501.     (@UnpackFiles)
  1502.     (delete #UnpackFile)
  1503.  
  1504.     ;// get full uncompressed driver name...
  1505.     (run "c:List " #RamTempFile " LFORMAT %s >ENV:wwDriver")
  1506.     (set Driver (getenv "wwDriver"))
  1507.     (set DriverLen (strlen Driver))
  1508.     (set DriverLen (- DriverLen 1))
  1509.     (set #ChosenDriver
  1510.       (substr Driver 0 DriverLen)
  1511.     )
  1512.     ;// finally, copy driver to driver destination...
  1513.         (if (= #DestinationType "Floppy")
  1514.         (
  1515.             (set #FileSourceDisk #DSDiskName)
  1516.             (@GetDisk)
  1517.         )
  1518.     )
  1519.     (copyfiles
  1520.       (source #RamTempFile)
  1521.       (dest #DriverDest)
  1522.       (pattern #ChosenDriver)
  1523.       (optional "force")
  1524.     )
  1525.   )
  1526. )
  1527.  
  1528. ;------------------------------------------------------
  1529. ;// Delete any files from Ram and temporary Ram Drawer
  1530. (procedure @CleanUp
  1531.     (
  1532.     (working #WorkingMsg)
  1533.     (makeassign "DSTemp" (safe))
  1534.         (if (exists #RamTempFile)
  1535.         (
  1536.                 (set DeleteDrawer (cat "ram:delete " #RamTempFile " all force"))
  1537.                 (Run DeleteDrawer)
  1538.             )
  1539.         )
  1540.     (makeassign "DSUtils" (safe))
  1541.         (if (exists #RamUtils)
  1542.         (
  1543.                 (set DeleteDrawer (cat "ram:delete " #RamUtils " all force"))
  1544.                 (Run DeleteDrawer)
  1545.             )
  1546.         )
  1547.       (delete "Ram:delete"
  1548.           (optional "force")
  1549.       )
  1550.     )
  1551. )
  1552.  
  1553. ;------------------------------------------------------
  1554. ; ### Main
  1555. (complete 0)
  1556. (welcome)
  1557. (complete 5)
  1558. (@InitialChecks) ;// Copies relevent files to ram also
  1559. (@CheckHDorFloppy)
  1560.  
  1561. (complete 10)
  1562.  
  1563. (if (= #DestinationType "Hard")
  1564.     (
  1565.         ;// HD
  1566.  
  1567.     ; Install to Hard-disk
  1568.     (if (= #FullPath (cat #DSInstallDisk ":"))
  1569.         (Abort #HDBootedFromFloppy)
  1570.     )
  1571.  
  1572.       (set #ArchiveLocation (cat #DSInstallDisk ":Archive/"))
  1573.     (set #FileSourceDisk #DSInstallDisk)
  1574.     (@GetDisk)
  1575.     (@SetUpHDProgDests)
  1576.       (@CheckASL)
  1577.       (@CheckLocale)
  1578.  
  1579.       ;## if WB2.0 and on Hard disk
  1580.         (if (= #OSVersion 37)
  1581.             (if (= (getassign "LOCALE") "")
  1582.                 ;no assign, so assign Locale to RAM:
  1583.                 (startup #ProgName
  1584.                     (prompt #AskLocaleMsg)
  1585.                     (help #AskLocaleHelp)
  1586.                     (command #AskLocaleCmd)
  1587.                 )
  1588.             )
  1589.         )
  1590.  
  1591.       (@CheckParse)
  1592.         (@CheckDiskFont)
  1593.         (@CheckAmigaGuide)
  1594.         (@FindHDDest)
  1595. (complete 20)
  1596.         (@CreateDrawers)
  1597.  
  1598.     (@SetUpHDProgDests)
  1599.     (set @default-dest #DestDrawer)
  1600.         (@UnProtectFonts)
  1601. (complete 30)
  1602.         (@DearchiveScreenFonts)
  1603. (complete 40)
  1604.         (@InstallHelp)
  1605. (complete 50)
  1606.         (@InstallProg)
  1607. (complete 60)
  1608.         (@InstallTemplates)
  1609. (complete 70)
  1610.         (@InstallPictures)
  1611. (complete 80)
  1612.         (tooltype
  1613.             (dest #ProgIcon)
  1614.             (setstack 15000)
  1615.         )
  1616.  
  1617.         (tooltype
  1618.             (dest #ProgIcon)
  1619.             (settooltype #LanguageTool @Language)
  1620.         )
  1621.  
  1622.         (set DisabledHelp (cat ";" #HelpTool))
  1623.         (tooltype
  1624.             (dest #ProgIcon)
  1625.             (settooltype DisabledHelp (cat #DSHelpName "/"))
  1626.         )
  1627.  
  1628.         (set DisabledDocs (cat ";" #DocsTool))
  1629.         (tooltype
  1630.             (dest #ProgIcon)
  1631.             (settooltype DisabledDocs (cat #DSDocsName "/"))
  1632.         )
  1633.  
  1634.         (set DisabledPics (cat ";" #PicsTool))
  1635.         (tooltype
  1636.             (dest #ProgIcon)
  1637.             (settooltype DisabledPics (cat #DSPicsName "/"))
  1638.         )
  1639.     )
  1640.     (
  1641.         ;// Floppy
  1642.       (set #ArchiveLocation "DSTemp:")
  1643.     (@SetUpFloppyProgDests)
  1644.         (if (>= @user-level 2) ;expert only
  1645.             (
  1646.                 (set #FormatChoice
  1647.                     (askchoice
  1648.                         (prompt #FormatChoiceprompt)
  1649.                         (choices #FormatChoicemsg1 #FormatChoicemsg2)
  1650.                         (help #FormatChoice-help)
  1651.                         (default 0)
  1652.                     )
  1653.                 )
  1654.             )
  1655.         )
  1656.  
  1657.         ;// if expert then check user wants to create disk 1
  1658.         (if (>= @user-level 2)
  1659.             (
  1660.                 (set #CreateDiskChoice
  1661.                     (askbool
  1662.                         (prompt (cat #CreateDiskPrompt #DSDiskName))
  1663.                         (choices #ChoiceContinue #ChoiceSkip)
  1664.                         (help #CreateDSDiskHelp)
  1665.                         (default 1)
  1666.                     )
  1667.                 )
  1668.             )
  1669.           (set #CreateDiskChoice 1)
  1670.         )
  1671.     (if (= @user-level 0)
  1672.       (
  1673.         (user 2)
  1674.         (set #UserNovice 1)
  1675.       )
  1676.     )
  1677.         (if (= #CreateDiskChoice 1)
  1678.             (@CreateDisk1)
  1679.         )
  1680.     (if (= #UserNovice 1)
  1681.       (user 0)
  1682.     )
  1683.  
  1684.         ;// if expert then check user wants to create disk 2
  1685.         (if (>= @user-level 2)
  1686.             (
  1687.                 (set #CreateDiskChoice
  1688.                     (askbool
  1689.                         (prompt (cat #CreateDiskPrompt #DSFilesName))
  1690.                         (choices #ChoiceContinue #ChoiceSkip)
  1691.                         (help #CreateFilesDiskHelp)
  1692.                         (default 1)
  1693.                     )
  1694.                 )
  1695.             )
  1696.           (set #CreateDiskChoice 1)
  1697.         )
  1698.     (if (= @user-level 0)
  1699.       (
  1700.         (user 2)
  1701.         (set #UserNovice 1)
  1702.       )
  1703.     )
  1704.         (if (= #CreateDiskChoice 1)
  1705.             (@CreateDisk2)
  1706.         )
  1707.     (if (= #UserNovice 1)
  1708.       (user 0)
  1709.     )
  1710.     (set @default-dest "")
  1711.     )
  1712. )
  1713.  
  1714. (complete 90)
  1715.  
  1716.     (set #InstallPrinter 1)
  1717.  
  1718.     (if (< #UserNovice 1) ; Intermediate or Expert only
  1719.         (
  1720.             (set #InstallPrinter
  1721.                 (askbool
  1722.                     (prompt #PrinterChoicePrompt)
  1723.                     (choices #PrinterChoicemsg1 #PrinterChoicemsg2)
  1724.                     (help #PrinterChoice-help)
  1725.                     (default 0)
  1726.                 )
  1727.             )
  1728.         )
  1729.     )
  1730.  
  1731. (if (= #InstallPrinter 1)
  1732.     (
  1733.         (@AddNewPrinter)
  1734.     )
  1735. )
  1736.  
  1737. (@CleanUp)
  1738. (complete 100)
  1739. (if (= #DestinationType "Hard")
  1740.     (exit)
  1741.     (exit #FloppyFinishedMsg)
  1742. )
  1743.